package com.wangxinrou.wangxinrou_surprisemeal.service;

import com.wangxinrou.wangxinrou_surprisemeal.mapper.UserMapper;
import com.wangxinrou.wangxinrou_surprisemeal.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class UserService {
    @Autowired
    UserMapper userMapper;
    // 创建新用户
    public User createUser(User user) {
        // 可以在这里添加验证逻辑
        userMapper.insert(user);
        return user;
    }

    // 根据用户ID获取用户信息
    public User getUserById(int userId) {
        return userMapper.selectById(userId);
    }

    // 获取所有用户
    public List<User> getAllUsers() {
        return userMapper.selectList(null);
    }

    // 更新用户信息
    public boolean updateUser(User user) {
        // 可以在这里添加验证逻辑，例如检查用户对象是否为null，字段是否合法等
        if (user == null || user.getUserId() == null) {
            // 可以抛出自定义异常或者记录日志
            return false; // 返回false表示更新失败
        }
        try {
            // 调用 Mapper 更新用户信息
            int rowsAffected = userMapper.updateById(user);
            // 判断更新是否成功
            return rowsAffected > 0; // 如果受影响的行数大于0，则更新成功
        } catch (Exception e) {
            e.printStackTrace(); // 或者使用日志框架记录异常
            return false; // 返回false表示更新失败
        }
    }

    // 根据用户ID删除用户
    public void deleteUser(int userId) {
        userMapper.deleteById(userId);
    }

    // 根据用户名删除用户
    public boolean deleteUserByName(String userName) {
        try {
            userMapper.deleteByName(userName);
            return true; // 返回true表示删除成功
        } catch (Exception e) {
            // 记录异常日志
            e.printStackTrace();
            return false; // 返回false表示删除失败
        }
    }

    // 检查用户是否存在
    public boolean doesUserExistByEmail(String email) {
        return userMapper.countUserByEmail(email) > 0;
    }

    public User findByName(String name) {
        return userMapper.selectByName(name);
    }
}
